package com.example.springboot.MongoDB.BaseOperation;

import com.example.springboot.MongoDB.Vo.Person;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component;



@Component
public class UpdateFun {
    @Autowired
    private MongoTemplate mongoTemplate;
    /**
     * 修改数据
     * 方法一
     */
    public void m1()
    {
        Person per = mongoTemplate.findById(1L, Person.class);
        per.setName("武松");
        mongoTemplate.save(per);
        System.out.println("111");
    }
    /**
     * 修改数据
     * 方法二
     */
    public void m2()
    {
        Person per = mongoTemplate.findById(1L, Person.class);
        // 查询条件 查询id为1l
        Query query = new Query(Criteria.where("id").is(1L));
        // 修改内容
        Update update = new Update().set("name","宋江");
        mongoTemplate.updateFirst(query,update,Person.class);
    }
    /**
     * 批量删除数据
     */
    public void m3()
    {
        // 查询条件  gte表示大于等于
        Query query = new Query(Criteria.where("id").gte(1L));
        // 修改内容
        Update update = new Update().set("name","宋江");
        mongoTemplate.updateMulti(query,update,Person.class);
    }
}